package com.softer.wxzj.service;

import com.softer.wxzj.common.entity.CommonResult;
import com.softer.wxzj.common.entity.Page;
import com.github.pagehelper.PageInfo;
import com.softer.wxzj.entity.*;

import java.util.List;

/**
 * @author Gong Zhiyang
 * @date 2020/8/5
 */
public interface DepositContinuationService {
    /**
     * 查询续交小区列表
     *
     * @param page           分页信息
     * @param baseRegionInfo 查询信息
     * @return 续交小区列表
     */
    PageInfo<BaseRegionInfo> getContinuationRegionList(Page page, BaseRegionInfo baseRegionInfo);
    /**
     * 查询续交自然幢列表
     *
     * @param page           分页信息
     * @param baseBuildInfo 查询信息
     * @return 续交自然幢列表
     */
    PageInfo<BaseBuildInfo> getContinuationBuildList(Page page, BaseBuildInfo baseBuildInfo);
    /**
     * 批量查询续交房屋列表
     *
     * @param page           分页信息
     * @param baseHouseInfo 查询信息
     * @return 续交房屋列表
     */
    PageInfo<BaseHouseInfo> getContinuationHouseList(Page page, BaseHouseInfo baseHouseInfo);
    /**
     * 查询单个自然幢续交房屋列表
     *
     * @param page           分页信息
     * @param baseHouseInfo 查询信息
     * @return 续交房屋列表
     */
    PageInfo<BaseHouseInfo> getSignalContinuationHouseList(Page page, BaseHouseInfo baseHouseInfo);
    /**
     * 重置交存模式
     *
     * @param houseId 房间ID
     * @return 重置结果
     */
    CommonResult resetModeType(String houseId);
    /**
     * 维护交存模式
     *
     * @param list 维护的交存模式房间集合
     * @return 维护结果
     */
    CommonResult setModeType(List<DepNotice> list);
    /**
     * 续交申请
     *
     * @param depositContinuation 续交房间集合
     * @return 续交结果
     */
    CommonResult apply(DepositContinuation depositContinuation);
    /**
     * 查询续交模式下拉列表
     *
     * @param depModeInfo 查询信息
     * @return 续交下拉列表
     */
    List<DepModeInfo> getModeList(DepModeInfo depModeInfo);
    /**
     * 查询续交待审核列表
     *
     * @param page          分页信息
     * @param baseHouseInfo 查询实体
     * @return 续交待审核列表
     */
    PageInfo<BaseHouseInfo> getAuditList(Page page, BaseHouseInfo baseHouseInfo);
    /**
     * 续交审核
     *
     * @param depositAuditRequest list    审核ID
     *                            opinion 审批意见
     *                            mark    审批通过 audit_pass
     *                            审批否决 audit_veto
     *                            审批退回 audit_back
     * @return 操作结果
     */
    CommonResult audit(DepositAuditRequest depositAuditRequest);
    /**
     * 续交查询列表
     *
     * @param page          分页信息
     * @param baseHouseInfo 查询实体
     * @return 续交待审核列表
     */
    PageInfo<BaseHouseInfo> searchAuditList(Page page, BaseHouseInfo baseHouseInfo);
    /**
     * 查询续交撤销列表
     *
     * @param page          分页信息
     * @param baseHouseInfo 查询实体
     * @return 续交撤销列表
     */
    PageInfo<BaseHouseInfo> getRevocationList(Page page, BaseHouseInfo baseHouseInfo);
    /**
     * 续交撤销查询
     *
     * @param page          分页信息
     * @param baseHouseInfo 查询实体
     * @return 续交撤销查询
     */
    PageInfo<BaseHouseInfo> searchRevocationList(Page page, BaseHouseInfo baseHouseInfo);
    /**
     * 续交撤销
     *
     * @param list 撤销ID集合
     * @return 撤销结果
     */
    CommonResult revocation(List<String> list);
}
